/*
 * Pass.java
 *
 */

package ua.gradsoft.misc.jsoo;

import ua.gradsoft.javachecker.EntityNotFoundException;
import ua.gradsoft.javachecker.models.JavaTypeModel;
import ua.gradsoft.termware.Term;
import ua.gradsoft.termware.TermWareException;

/**
 *
 * @author rssh
 */
public interface Pass {
    
    
    public boolean isReadInput();
    
    public boolean isWriteOutput();
    
    public boolean isWalk();
    
    /**
     * return transformed type model.
     */
    public Term  transform(JavaTypeModel typeModel, JSOOFacts facts, Configuration configuration) throws TermWareException, EntityNotFoundException;
    
    
}
